package com.kaka.bus.util;


import com.google.gson.reflect.TypeToken;
import com.kaka.bus.AppCenter;
import com.kaka.bus.bean.City;
import com.kaka.bus.bean.Rolling;
import com.kaka.bus.bean.UserInfo;
import com.kaka.bus.constant.Constant;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * Created by OnionMac on 2018/1/6.
 * 用户数据相关
 * 缓存对象类
 */

public class UserUtil {

    public static final String PERSONINFO = "personinfo"; //用户个人资料页面填写的信息
    public static final String USERINFO = Constant.USERINFO; //用户登录个人信息
    public static final String SERVICE = "service";  //客服服务电话
    public static final String CITYINFO = "cityinfo";//城市列表
    public static final String USER_PRIVATE = "private";//用户个人信息 和银行卡信息

    private static final Map<String,Type> sMap = new HashMap<>();

    static{
        sMap.put(PERSONINFO,new TypeToken<LinkedHashMap<String,String>>(){}.getType());
        sMap.put(USERINFO,UserInfo.class);
        sMap.put(CITYINFO,City.class);
        sMap.put(SERVICE, Rolling.class);
    }

    public static <T> T getCache(String key){
        String data = AppCenter.mSpUtil.getString(key);
        if(data == null){
            return null;
        }
        return AppCenter.mGson.fromJson(data,sMap.get(key));
    }

    public static <T> void setCache(String key,T data){
        AppCenter.mSpUtil.putString(key,AppCenter.mGson.toJson(data));
    }

//    public static void setUser(UserInfo user){
//        AppCenter.mSpUtil.putString(USERINFO,AppCenter.mGson.toJson(user));
//    }
//
//    public static UserInfo getUser(){
//        String userInfo = AppCenter.mSpUtil.getString(USERINFO);
//        if(userInfo == null){
//            return null;
//        }
//
//        return AppCenter.mGson.fromJson(userInfo,UserInfo.class);
//    }
//
//    public static void setPersonInfo(LinkedHashMap<String,String> map){
//        AppCenter.mSpUtil.putString(PERSONINFO,AppCenter.mGson.toJson(map));
//    }
//
//    public static LinkedHashMap<String,String> getPersonInfo(){
//        String personInfo = AppCenter.mSpUtil.getString(PERSONINFO);
//        if(personInfo == null){
//            return null;
//        }
//        Type type = new TypeToken<LinkedHashMap<String, String>>() {
//        }.getType();
//        return AppCenter.mGson.fromJson(personInfo,type);
//    }
//
//    public static void setService(BasicInfo basicInfo){
//        AppCenter.mSpUtil.putString(SERVICE,AppCenter.mGson.toJson(basicInfo));
//    }
//
//    public static BasicInfo getBasicInfo(){
//        String serviceInfo = AppCenter.mSpUtil.getString(SERVICE);
//        if(serviceInfo == null){
//            return null;
//        }
//        return AppCenter.mGson.fromJson(serviceInfo,BasicInfo.class);
//    }
//
//    public static void setUserPrivate(User user){
//        AppCenter.mSpUtil.putString(USER_PRIVATE,AppCenter.mGson.toJson(user));
//    }
//
//    public static User getUserPrivate(){
//        String user = AppCenter.mSpUtil.getString(USER_PRIVATE);
//        if(user == null){
//            return null;
//        }
//        return AppCenter.mGson.fromJson(user,User.class);
//    }
//
//    public static void setCity(City city){
//        AppCenter.mSpUtil.putString(CITYINFO,AppCenter.mGson.toJson(city));
//    }
//
//    public static City getCity(){
//        String user = AppCenter.mSpUtil.getString(CITYINFO);
//        if(user == null){
//            return null;
//        }
//        return AppCenter.mGson.fromJson(user,City.class);
//    }
}
